#include "work_que.h"

void que_init(pQue_t pq, int capacity)
{
    memset(pq, 0, sizeof(Que_t));
    pq->que_capacity = capacity;
    pthread_mutex_init(&pq->mutex, NULL);
}

void que_set(pQue_t pq, pNode_t pnew)
{
    if (pq->que_head == NULL) // 队列为空
    {
        pq->que_head = pq->que_tail = pnew;
    } else { // 尾插法
        pq->que_tail->pNext = pnew;
        pq->que_tail = pnew;
    }
    pq->que_size ++;
}

void que_get(pQue_t pq, pNode_t *p)
{
    if (pq->que_size != 0)
    {
        *p = pq->que_head;
        pq->que_head = pq->que_head->pNext;
        if (pq->que_head == NULL)
        {
            pq->que_tail = NULL;
        }
        pq->que_size --;
    }
}